package com.lipuwater.agent.ble;

import com.blekit.BluetoothClient;
import com.blekit.connect.options.BleConnectOptions;
import com.blekit.connect.response.BleConnectResponse;
import com.blekit.model.BleGattProfile;
import com.lipuwater.agent.ble.listener.ConnListener;
import com.lipuwater.agent.ui.activity.MainActivity;

/**
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃神兽保佑
 * 　　　　┃　　　┃永无BUG！
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━神兽出没━━━━━━
 * Created by  Administrator  on 2017/1/15.
 * Email:924686754@qq.com
 */
public class DeviceConn {
    private BluetoothClient mClient;


    public DeviceConn() {
        mClient = MainActivity.mBleClient;
    }

    public int getConnState(String mac) {
        if (mClient == null) {
            return -1;
        }
        return mClient.getConnectStatus(mac);
    }

    public void conn(String mac, final ConnListener connListener) {
        if (mClient == null) {
            return;
        }
        BleConnectOptions options = new BleConnectOptions.Builder()
                .setConnectRetry(BleConfig.CONNECTRETRY)   // 连接如果失败重试2次
                .setConnectTimeout(BleConfig.CONNECTTIMEOUT)   // 连接超时5s
                .setServiceDiscoverRetry(BleConfig.SETVICEDISCOVERRETRY)  // 发现服务如果失败重试2次
                .setServiceDiscoverTimeout(BleConfig.SERVICEDISCOVERTIMEOUT)  // 发现服务超时6s
                .build();
        mClient.connect(mac, options, new BleConnectResponse() {
            @Override
            public void onResponse(int code, BleGattProfile profile) {
                if (connListener != null) {//code==0 = 发现服务
                    connListener.onConn(code, profile);
                }
            }
        });
    }
}
